package com.kamistoat.netty.nio;

import java.nio.IntBuffer;

/**
 * 简单说明NIO中Buffer的使用
 */
public class BasicBuffer {
    public static void main(String[] args) {
        // 创建一个Buffer，Java中的Buffer有很多种类型，这里创建一个容量为5且存放Int的Buffer
        // 使用 Buffer.allocate(int) 来设置Buffer的初始容量
        IntBuffer intBuffer = IntBuffer.allocate(5);

        // 向 Buffer中存放数据
        for (int i = 0; i < intBuffer.capacity(); i++){
            intBuffer.put(i * 2);
        }

        // 从Buffer中读取数据
        // 操作Buffer很重要的一步，在Buffer切换读写之间调用 Buffer.flip() 进行读写转换，调用该函数后Buffer中的某些标志会发生改变
        intBuffer.flip();
        while(intBuffer.hasRemaining()){
            // Buffer.get() 可以理解为 Stack.pop，弹出的同时索引会自动前进
            System.out.println(intBuffer.get());
        }
    }
}
